第2节 分类和识别—卷积神经网络
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习的代表算法之一。
CNN网络的基本结构和体验
卷积神经网络的层级结构包括
- 数据输入层/ Input layer
- 卷积计算层/ CONV layer
- ReLU激励层 / ReLU layer
- 池化层 / Pooling layer
- 全连接层 / FC layer
卷积在图像处理中的效果是,通过卷积操作,将图像中的某些特征凸显出来。
不同的卷积核会实现不同的效果池化,或者降采样,就是缩小图片,制作缩略图。
全连接层是一种特殊的卷积,它主要用于加权分类
在左上角方框中写数字来进行可视化CNN体验。
练习1:训练自定义图片分类器
Tensorflow简介
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
分类器
图片的计算机存储
图片以像素组合的形式呈现在显示器上。每个像素由3种颜色rgb组成 在计算机上,每个像素用包含rgb三种颜色的数组存储。
特征提取/训练/学习
计算机通过神经网络的方法,通过运算图片的数组,提取不同图像的特征, 这个过程叫做训练。通常,训练的时候要使用大量同类的图片,比如不同的猫的照片,它们有相似的特征。
在线训练
练习2:图像风格迁移
在神经网络之前,图像风格迁移的程序有一个共同的思路:分析某一种风格的图像,给那一种风格建立一个数学或者统计模型,再改变要做迁移的图像让它能更好的符合建立的模型。这样做出来效果还是不错的,但一个很大的缺点:一个程序基本只能做某一种风格或者某一个场景。因此基于传统风格迁移研究的实际应用非常有限。 而 Neural Style 程序通过输入一张代表内容的图片和一张代表风格的图片,使用深度学习网络输出一张融合了这个风格和内容的新作品。